package com.xbongbong.saas.service;


import com.xbongbong.distributor.dto.DistributorAreaAddDTO;
import com.xbongbong.distributor.dto.DistributorAreaDelDTO;
import com.xbongbong.distributor.dto.DistributorAreaListDTO;
import com.xbongbong.distributor.dto.DistributorAreaSortDTO;
import com.xbongbong.distributor.dto.DistributorAreaUpdateDTO;
import com.xbongbong.distributor.vo.DistributorAreaAddVO;
import com.xbongbong.distributor.vo.DistributorAreaDelVO;
import com.xbongbong.distributor.vo.DistributorAreaListVO;
import com.xbongbong.distributor.vo.DistributorAreaSortVO;
import com.xbongbong.distributor.vo.DistributorAreaUpdateVO;
import com.xbongbong.paas.pojo.vo.DepartmentSimpleListVO;
import com.xbongbong.paas.toolbox.exception.XbbException;

/**
 * @author mengna.deng
 * @version V1.0
 * @date 2020/12/23 15:10
 * @since V1.0
 */
public interface DistributorAreaService {
    /**
     * 区域设置列表
     *
     * @param distributorAreaListDTO 关联业务DTO
     * @return 关联业务VO
     * @throws XbbException 业务异常
     */
    DistributorAreaListVO list(DistributorAreaListDTO distributorAreaListDTO) throws XbbException;

    /**
     * 添加区域
     * @param distributorAreaAddDTO
     * @return
     * @throws XbbException
     */
    DistributorAreaAddVO add(DistributorAreaAddDTO distributorAreaAddDTO) throws XbbException;

    /**
     * 删除区域
     * @param distributorAreaDelDTO
     * @return
     * @throws XbbException
     */
    DistributorAreaDelVO delete(DistributorAreaDelDTO distributorAreaDelDTO) throws XbbException;

    /**
     * 更新区域
     * @param distributorAreaUpdateDTO
     * @return
     * @throws XbbException
     */
    DistributorAreaUpdateVO update(DistributorAreaUpdateDTO distributorAreaUpdateDTO) throws XbbException;

    /**
     * 排序
     * @param distributorAreaSortDTO
     * @return
     * @throws XbbException
     */
    DistributorAreaSortVO sort(DistributorAreaSortDTO distributorAreaSortDTO) throws XbbException;

    /**
     * 所在地区查询，表单内用
     * @param distributorAreaListDTO
     * @return
     */
    DepartmentSimpleListVO areaFormList(DistributorAreaListDTO distributorAreaListDTO) throws XbbException;
}
